package com.mastercard.assets.web.struts.actions;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.mastercard.assets.jpa.TblCampania;
import com.mastercard.assets.util.dao.MasterCardDAO;
import com.mastercard.assets.web.struts.forms.ListarCampanasBancoForm;
import com.mastercard.assets.web.util.to.UserLogin;

public class ListarCampanasBancoBuscar
	extends
		Action
{
	public ActionForward execute(
							ActionMapping mapping , 
							ActionForm form ,
							HttpServletRequest request , 
							HttpServletResponse response )
		throws 
			IOException , 
			ServletException
	{
		HttpSession session = request.getSession( ) ;
		
		// en caos de null
		if( session == null )
			return mapping.findForward( "noLogin" ) ;
		
		// toma el userLogin
		UserLogin user = ( UserLogin ) session.getAttribute( "UserLogin" ) ;
		
		// en caso de null
		if( user == null )
			return mapping.findForward( "noLogin" ) ;
		
		// verifica que el rol en el que esta es banco (2)
		int role = user.getActualRoleId( ) ;
		
		if( role != 3 )
			return mapping.findForward( "RoleNoValido" ) ;
		
		// busca campanas del usuario
		// toma el usuario
		int userId = user.getCveUsuario( ) ;
		
		List< TblCampania > campanias = 
                        MasterCardDAO.findAllActivCampaignsByRespAndCount(user.getCveUsuario( ), user.getActualCountId( ) ) ;
                        //findAllActivCampaignsByResp( user.getCveUsuario( ) ) ;
		MasterCardDAO.closeEntityManager( ) ;
		// en caso d eque no haya campanias
		if( campanias == null || campanias.size( ) == 0 )
		{
			return mapping.findForward( "NoCampanas" ) ;
		}
		
		// forma el formulario
		ListarCampanasBancoForm f = new ListarCampanasBancoForm( ) ;
		f.setCampanias( campanias ) ;
		
		request.setAttribute( "ListarCampanasBancoForm" , f ) ;
		
		return mapping.findForward( "success" ) ;
	}
	
}
